Compiler Optimization Correctness by Temporal Logic
نویسندگان
چکیده
منابع مشابه
Compiler Optimization Correctness by Temporal Logic
Rewrite rules with side conditions can elegantly express many classical compiler optimizations for imperative programming languages. In this paper, programs are written in an intermediate language and transformation-enabling side conditions are specified in a temporal logic suitable for describing program data flow. The purpose of this paper is to show how such transformations may be proven cor...
متن کاملFormal approach to guarantee the correctness of compiler optimization using temporal logic Department of Mathematical and Computing Sciences
Optimization is a very important phase of compilation. Depending on the circumstances, it can improve the performance of programs by double-digit percentages. It is essential that the compiler optimizer is implemented so that it does not change the semantics of programs it is applied to. However, many optimizations are too complex to o er such correctness. Guaranteeing the correctness of an opt...
متن کاملTowards Behavioral Compiler Correctness Proofs using Hidden Logic
A user will perceive a compiler as correct if he or she cannot visibly distinguish between the behavior of a program interpreted in the source language semantics and the behavior of the compiled version of the same program with the exception of the execution speed. This allows us to use the visible behavior of a program as a correctness argument for program translation. Recent developments in b...
متن کاملCompiler Support for Correctness Proofs
The development of correct software is an important task which should not be carried out with the help of tools following diierent approaches. We propose that full support for correctness proofs should be integrated into the compiler. We outline in this paper how a compiler for a functional language can be extended to support the development of correct software. Speciications, functional progra...
متن کاملType Refinements for Compiler Correctness
Type refinements, introduced by Freeman and Pfenning and explored by Davies and Dunfield, unify the ontological and epistemic views of typing. Types tell us what programming language constructs exist, whereas refinements express properties of the values of a type. Here we show that refinements are very useful in compiler correctness proofs, wherein it often arises that two expressions that are ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: Higher-Order and Symbolic Computation (formerly LISP and Symbolic Computation)
سال: 2004
ISSN: 1388-3690
DOI: 10.1023/b:lisp.0000029444.99264.c0